package promotion.jdom;

import java.io.IOException;
import org.jdom.JDOMException;
import org.jdom.output.DOMOutputter;
import org.restlet.data.CharacterSet;
import org.restlet.data.MediaType;
import org.restlet.ext.xml.DomRepresentation;
import org.w3c.dom.Document;

/**
 * Classe correspondant à une représentation de RESTLET mais issu de JDOM
 * étendant de DomRepresentation
 * @author marya
 */
public class JDOMRepresentation extends DomRepresentation {

    /**
     * Constructeur
     * @param mediaType - le media type
     * @param xmlDocument - le Document
     */
    public JDOMRepresentation(MediaType mediaType, Document xmlDocument) {
        super(mediaType, xmlDocument);
    }

    /**
     * Constructeur à partir d'un media type et d'un document jdom
     * @param mediaType
     * @param jdomDocument - un document JDOM
     * @throws IOException
     * @throws JDOMException
     */
    public JDOMRepresentation(MediaType mediaType, org.jdom.Document jdomDocument) throws IOException, JDOMException {
        super(mediaType);
        setDocument(convertToDOM(jdomDocument));
        setCharacterSet(CharacterSet.UTF_8);
    }

    public JDOMRepresentation() throws IOException {
    }

    /**
     * Méthode qui convertit un document JDOM en document DOM
     * @param jdomDoc le document JDOM à convertir
     * @return un document DOM
     * @throws JDOMException
     */
    private org.w3c.dom.Document convertToDOM(org.jdom.Document jdomDoc)
            throws JDOMException {

        DOMOutputter outputter = new DOMOutputter();
        return outputter.output(jdomDoc);
    }
}
